package com.simple.elpmobile.onlinecase.common.phone;

import java.io.File;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Vibrator;

/**
 * 终端操作的提供者，提供所有有关终端的操作
 * 
 * @author Tiny
 * @version [版本号, 2012-4-22]
 */
public abstract class PhoneOperater
{

    /**
     * 安装apk
     * 
     * @param context 上下文
     * @param apkPath apk的路径
     * @return 安装是否成功
     */
    public static boolean installApk(final Context context, final String apkPath)
    {
        final File file = new File(apkPath);
        boolean success = false;

        if (file != null && file.exists())
        {
            final Intent intent = new Intent();
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setAction(Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.fromFile(file),
                    "application/vnd.android.package-archive");
            context.startActivity(intent);
            success = true;
        }

        return success;
    }

    /**
     * 启动震动
     * 
     * @param context 上下文
     * @param times 
     *            震动的设置，数组型，为a,b类似组合</br>其中a，b定义为静止时间，震动时间，如200,3000表示为暂停200毫秒后震动3000毫秒
     * @param repeat 重复次数
     */
    public static void vibrate(final Context context, final long[] times,
            final int repeat)
    {
        ((Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE)).vibrate(
                times, repeat);
    }

    /**
     * 取消震动
     * 
     * @param context 上下文
     */
    public static void cancelVibrate(final Context context)
    {
        ((Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE)).cancel();
    }

}
